package com.itheima.aop;

import org.aspectj.lang.ProceedingJoinPoint;

public class Advice {

    //定义环绕通知,实现计算方法执行效率的需求
    public Object around(ProceedingJoinPoint pjp){
        Object result = null;
        try {
            //1.记录开始时间
            long start = System.currentTimeMillis();
            //2.调用目标对象的方法
            Object[] args = pjp.getArgs();
            result = pjp.proceed(args);
            //3.记录结束时间  获取正在执行的方法名
            long end = System.currentTimeMillis();
            String methodName = pjp.getSignature().getName();
            //4.计算并打印结果
            System.out.println("执行"+methodName+"方法共耗时:"+(end-start)+"毫秒");
        } catch (Throwable throwable) {
            throwable.printStackTrace();
        }
        return result;
    }
}
